package com.streamax.app.cqbus.platform.socket.tcp.command

import com.kt.coroutinedemo.utils.PacketUtils
import com.streamax.app.cqbus.platform.ext.toByteArray2
import com.streamax.app.cqbus.platform.ext.toByteArrayGB2312End0


data class TcpCommand02(
        //命令序列号
        var snNum: Int = 0,
        //命令ID
        var commandId: Int = 0x02,
        /**
         * 类型 下载类型
        0x01：线路文件下载
        0x02：主机程序下载
        0x03：其他文件
        0x04：服务用语文件（按键语音）
        0x05：调度信息配置文件
        0x06：公共语音文件
         */
        var downloadType: Byte,

        /**
         * 单个数据包的大小，终端根据实际情况进行自主设置
         */
        var packetSize: Int = 8192*1000,

        /**
         * 如果是线路文件，表示需要下载的线路号，程序文件或其他文件，表示文件名称
         */
        var msg: String,

) {
    fun packet(): ByteArray {
        val result = mutableListOf<ByteArray>()

        val type = byteArrayOf(downloadType)
        result.add(byteArrayOf(downloadType))

        val lenByte = packetSize.toByteArray2
        result.add(packetSize.toByteArray2)

        val msgByte = msg.toByteArrayGB2312End0
        result.add(msg.toByteArrayGB2312End0)

        return PacketUtils.bytesMerger(result)
    }
}